<html>
<head>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title>Счётчик</title>
</head>

<body bgcolor="FFFFFF">

<h1><img align="center" src="../../../../icons/counter.gif" width="32" height="32">
<em>Счётчик</em></h1>

<p><table>
<tr><td><strong>Библиотека:</strong></td>
	<td><a href="index.html">Память</a></td></tr>
<tr><td><strong>Введён в:</strong></td>
	<td>2.3.0</td></tr>
<tr><td valign="top"><strong>Внешний вид:</strong></td>
	<td valign="top"><img src="../../../../img-libs/counter.png" width="34" height="44"></td></tr>
</table></p>

<h2>Поведение</h2>

<p>Счётчик хранит одно значение, которое выдаётся на выход <var>Q</var>. Каждый раз, когда тактовый вход (отмеченный треугольником на южном крае компонента) срабатывает в соответствии с его атрибутом Срабатывание, значение в счётчике может обновиться на основании значений двух входов на западном крае компонента: верхнего входа, названного <var>загрузка</var>, и нижнего, названного <var>счёт</var>, и они интерпретируются следующим образом.</p>

<center><table><thead>
<tr><td><var>загрузка</var></td><td><var>счёт</var></td><td>вызываемое действие</td></tr>
</thead><tbody>
<tr><td align="center">0 или z</td><td align="center">0</td>
    <td>Значение счётчика остаётся неизменным</td></tr>
<tr><td align="center">0 или z</td><td align="center">1 или z</td>
    <td>Значение счётчика увеличивается на единицу.</td></tr>
<tr><td align="center">1</td><td align="center">0</td>
    <td>Счётчик загружает значение со входа <var>D</var>.</td></tr>
<tr><td align="center">1</td><td align="center">1 или z</td>
    <td>Значение счётчика уменьшается на единицу.</td></tr>
</tbody></table></center>

<p>Диапазон счёта можно настроить с помощью атрибута Максимальное значение. Когда счётчик достигает этого значения, следующее увеличение возвращает значение счётчика обратно к 0; а если значение счётчика 0, то уменьшение возвратит счётчик к его максимальному значению.</p>

<p>В дополнение к выходу <var>Q</var> компонент также имеет однобитный выход <var>перенос</var>. На этом выходе 1, когда счётчик имеет своё максимальное значение и входы <var>загрузка</var> и <var>счёт</var> показывают, что значение компонента должно увеличиться на следующем шаге; или когда значение счётчика - 0, и входы <var>загрузка</var> и <var>счёт</var> показывают, что значение компонента должно уменьшиться на следующем шаге.</p> 

<p>Вход <var>Очистка</var> асинхронно сбрасывает значение счётчика на 0 (все нули); кроме того, пока на входе <var>Очистка</var> 1, значение фиксировано на 0 вне зависимости от тактового входа.</p>

<h2>Контакты</h2>

<dl>

<dt>Восточный край, отмечен <var>Q</var> (выход, разрядность соответствует атрибуту Биты данных)</dt>
<dd>Выдаёт значение, хранящееся в данный момент в счётчике.</dd>

<dt>Восточный край, нижний контакт (выход, разрядность равна 1)</dt>
<dd>Перенос: когда входы <var>загрузка</var> и <var>счёт</var> указывают счётчику увеличиться, значение на этом выходе 1, если регистр имеет максимальное значение. Когда входы <var>загрузка</var> и <var>счёт</var> указывают счётчику уменьшиться, значение на этом выходе 1, если регистр имеет значение 0. Во всех других случаях на этом выходе 0.</dd>

<dt>Западный край, верхний контакт (вход, разрядность равна 1)</dt>
<dd>Загрузка: когда на этом входе 1, пока на входе <var>счёт</var> 0, счётчик загрузит значение со входа <var>данные</var> при следующем срабатывании тактового входа; или, если на входе <var>счёт</var> 1, значение счётчика уменьшится.</dd>

<dt>Западный край, средний контакт, отмечен <var>D</var> (вход, разрядность соответствует атрибуту Биты данных)</dt>
<dd>Данные: когда срабатывает тактовый вход при 1 на входе <var>загрузка</var> и 0 на входе <var>счёт</var>, значение счётчика сменится на значение, поступившее на этот вход.</dd>

<dt>Западный край, нижний контакт, отмечен <var>ct</var> (вход, разрядность равна 1)</dt>
<dd>Счёт: когда на этом входе 1, или он не подключен, значение счётчика увеличивается, когда срабатывает тактовый вход, или уменьшается, если на входе <var>load</var> тоже была 1.</dd> 

<dt>Южный край, отмечен треугольником (вход, разрядность равна 1)
<dd>Тактовый вход: в момент срабатывания этого входа (как указано в атрибуте Срабатывание) значение счётчика обновляется, как указано входами <var>загрузка</var> и <var>счёт</var>.</dd>

<dt>Южный край, отмечен 0 (вход, разрядность равна 1)
<dd>Очистка: если на этом входе 0 или неопределённое значение, то он не имеет эффекта. Пока на нём 1, значение счётчика асинхронно фиксируется на 0. Это происходит асинхронно - то есть вне зависимости от текущего значения на тактовом входе. Пока на нём 1, другие входы не имеют эффекта.</dd>

</dl>


<h2>Атрибуты</h2>

<p>Когда компонент выбран, или уже добавлен, комбинации от Alt-0 до Alt-9 меняют его атрибут <q>Биты данных</q>.</p>

<dl>

<dt>Биты данных</dt>
<dd>Разрядность значения, выдаваемого компонентом.</dd>

<dt>Максимальное значение</dt>
<dd>Максимальное значение, при котором счётчик установит в 1 значение выхода Перенос.</dd>

<dt>Действие при переполнении</dt>
<dd>Поведение, когда счётчик пытается увеличится при максимальном значении, или уменьшиться при 0. Четыре возможных действия поддерживаются:
<dl>
<dt>Закольцовывать</dt>
<dd>При увеличении - следующее значение 0; при уменьшении - максимальное значение</dd>
<dt>Оставаться на значении</dt>
<dd>Значение счётчика остаётся на максимуме (или на 0 при уменьшении)</dd>
<dt>Продолжать счёт</dt>
<dd>Счётчик продолжает увеличение/уменьшение, сохраняя количество битов, указанное в атрибуте Биты данных</dd>
<dt>Загрузить следующее значение</dt>
<dd>Следующее значение загружается со входа D.</dd>
</dl></dd>

<dt>Срабатывание</dt>
<dd>Определяет, как обрабатывается тактовый вход.  Значение <q>Передний фронт</q> означает, что счётчик должен обновляться в момент, когда значение на тактовом входе меняется с 0 на 1. Значение <q>Задний фронт</q> означает, что он должен обновляться, когда значение на тактовом входе меняется с 1 на 0.</dd>

<dt>Метка</dt>
<dd>Текст внутри метки, привязанной к компоненту.</dd>

<dt>Шрифт метки</dt>
<dd>Шрифт, которым отрисовывается метка.</dd>

</dl>

<h2>Поведение Инструмента Нажатие</h2>

<p>Нажатие на счётчике переводит фокус ввода клавиатуры на компонент (это отображается красным прямоугольником), и ввод шестнадцатеричных цифр будет менять значение, хранящееся в счётчике.</p>

<h2>Поведение Инструмента Текст</h2>

<p>Позволяет редактировать привязанную к компоненту метку.</p>

<p><a href="../index.html">Назад к <em>Справке по библиотеке</em></a></p>

</body>
</html>
